package ar.com.binarit

import ar.com.binarit.entities.Categoria
import ar.com.binarit.entities.Mubbia
import ar.com.binarit.entities.ParametrosSistema
import ar.com.binarit.util.DateUtil

class AbstractMubbiaController {
	
	def mubbiaService
	def springSecurityService

    def llenarDatosMubbia(params, initial) {
		log.warn "llenarDatosMubbia - initial: " + initial + " params: " + params
//		def usuarioLogueado = umeService.getUsuarioLogueado()

		def mubbiaInstance = mubbiaService.obtenerMubbia(params.mubbiaId)
		if (!mubbiaInstance){
			mubbiaInstance = new Mubbia()
		}else{
			mubbiaInstance.traerDatosRelacionados()
		}
		
		if (params.fechaFinalizacion) {
			params.fechaFinalizacion = DateUtil.toDate(params.fechaFinalizacion)
		}
		
		mubbiaInstance.properties = params
		
		if (springSecurityService.isLoggedIn() && initial){
			mubbiaInstance.usuarioCreador = springSecurityService.currentUser
		}
		
		if (params.tags) {
			mubbiaInstance.tags = params.tags.split(",")
		}
		return mubbiaInstance
	}
	
	def getParametrosSistema(){
		return ParametrosSistema.first()
	}
	
	def getMapaDatos(mubbiaInstance){
		return [usuarioLogueado : springSecurityService.currentUser, categorias:Categoria.all.sort{it.descripcion}]
	}
	
	def mostrarResultados(ok, mensajeOk, mubbiaInstance) {
		def modelView = [mubbiaInstance: mubbiaInstance]
		modelView.putAll(getMapaDatos(mubbiaInstance))
		log.warn "mostarResultados: ${params}"
		log.warn "mubbiaInstance: ${mubbiaInstance}"
		if (ok) {
			flash.message = mensajeOk
			redirect(action: "show", params:[mubbiaId : mubbiaInstance?.id])
		} else {
			render(view: "index", model: modelView)
		}
	}
	
	def actualizarNavBar(){
		render (template: "/templates/mainHeader", model: [persona: springSecurityService.currentUser])
	}
	
}
